<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chaining Promise</title>
</head>
<body>
    <script>
        // JS 代码如何运行？ -> JS 引擎中运行 单线程 渲染引擎（页面不能卡顿）
        // Event Loop 事件循环（执行机制）    同步代码，异步代码
        // 执行栈 压入script 第一个macro task
        // 宏任务 setTimeout  setInterval  script  setImmediate  I/O操作  UI渲染
        // 微任务 Promise  process.nextTick  MutationObserver
        // 宏任务 macro task，微任务 micro task
        // 事件循环过程 event loop
        
        // - 初始状态 调用栈为空 栈底是全局作用域。micr队列为空
        //     macro队列只有一个script脚本(整体代码)
        // - 全局上下文被推入调用栈，同步执行代码。
        //      执行中，如果产生了marco或micro 加入各自的任务队列
        // - script脚本移出macro队列
        // - event loop 直到两个队列都清空
        // - 执行渲染操作，更新界面
    </script>
</body>
</html>